Computing devices today typically use operating systems as a fundamental way to control interaction with their associated hardware, as well as to provide applications with simplified access to resources. For instance, an operating system can be used to manage memory allocation, manage hardware input/output, allocate processor utilization, provide services, applications, and other forms of access. Software applications rely upon features supplied and/or managed by the operating system in order for the applications to work. As a consequence, applications written for one operating system may not run on a second operating system without modifications. Furthermore, vendors of the applications may choose not to support multiple operating systems, thus narrowing a user to certain operating systems should the user choose to run a particular application. In some cases, the user may switch between operating systems in order to switch between applications.
To accommodate multiple operating systems, computing devices can be configured to boot more than one operating system. For instance, when a computing device is booting, a user can manually intervene and change where the computing device “looks to” for boot and/or operating system information. Oftentimes, different vendors can provide boot code for the computing devices. As a consequence, how the user can enter and change the boot code for each computing device can differ from vendor to vendor, thus compounding what knowledge the user needs to modify how a computing device boots.